#include <ros/ros.h>

#include <visualization_msgs/Marker.h>
#include <visualization_mags/MarkerArray.h>

class SelfDrivingCore
{
public:
	SelfDrivingCore(ros::NodeHandle &nh);
	~SelfDrivingCore();
	
private:
	ros::Subscriber sub_bbox_8;
	ros::Subscriber sub_bbox_10;
	
	ros::Publisher pub_TX2_VCU_ClampLiftCmd;
	ros::Publisher pub_TX2_VCU_ControlCmd;
    ros::Publisher pub_TX2_VCU_MotorCmd;
    
    void callback_handle_bbox8(jsk_recognition_msgs::BoundingBoxArray& bbox_in);
    void callback_handle_bbox10(jsk_recognition_msgs::BoundingBoxArray& bbox_in);

    void TX2_VCU_ClampLiftCmd(const can_msgs::TX2_VCU_ClampLiftCmd::ConstPtr& msg);
    void TX2_VCU_ControlCmd(const can_msgs::TX2_VCU_ControlCmd::ConstPtr& msg);
    void TX2_VCU_MotorCmd(const can_msgs::TX2_VCU_MotorCmd::ConstPtr& msg);
}
